/**
 * This is my code.
 *
 * $Id$
 */
package fi.jab.esb.config.xml;

import org.eclipse.emf.ecore.EObject;

/**
 * <!-- begin-user-doc -->
 * A representation of the model object '<em><b>Jms Message Filter Type</b></em>'.
 * <!-- end-user-doc -->
 *
 * <p>
 * The following features are supported:
 * <ul>
 *   <li>{@link fi.jab.esb.config.xml.JmsMessageFilterType#getAcknowledgeMode <em>Acknowledge Mode</em>}</li>
 *   <li>{@link fi.jab.esb.config.xml.JmsMessageFilterType#getDestName <em>Dest Name</em>}</li>
 *   <li>{@link fi.jab.esb.config.xml.JmsMessageFilterType#getDestType <em>Dest Type</em>}</li>
 *   <li>{@link fi.jab.esb.config.xml.JmsMessageFilterType#isPersistent <em>Persistent</em>}</li>
 *   <li>{@link fi.jab.esb.config.xml.JmsMessageFilterType#getSelector <em>Selector</em>}</li>
 * </ul>
 * </p>
 *
 * @see fi.jab.esb.config.xml.XmlPackage#getJmsMessageFilterType()
 * @model extendedMetaData="name='jms-message-filter_._type' kind='empty'"
 * @generated
 */
public interface JmsMessageFilterType extends EObject
{
  /**
   * Returns the value of the '<em><b>Acknowledge Mode</b></em>' attribute.
   * The default value is <code>"AUTO_ACKNOWLEDGE"</code>.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * <!-- begin-model-doc -->
   * 
   * 						JMS Session acknowledge mode. Can be on of AUTO_ACKNOWLEDGE (default), CLIENT_ACKNOWLEDGE, or DUPS_OK_ACKNOWLEDGE.
   * 					
   * <!-- end-model-doc -->
   * @return the value of the '<em>Acknowledge Mode</em>' attribute.
   * @see #isSetAcknowledgeMode()
   * @see #unsetAcknowledgeMode()
   * @see #setAcknowledgeMode(String)
   * @see fi.jab.esb.config.xml.XmlPackage#getJmsMessageFilterType_AcknowledgeMode()
   * @model default="AUTO_ACKNOWLEDGE" unsettable="true" dataType="org.eclipse.emf.ecore.xml.type.String"
   *        extendedMetaData="kind='attribute' name='acknowledge-mode'"
   * @generated
   */
  String getAcknowledgeMode();

  /**
   * Sets the value of the '{@link fi.jab.esb.config.xml.JmsMessageFilterType#getAcknowledgeMode <em>Acknowledge Mode</em>}' attribute.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @param value the new value of the '<em>Acknowledge Mode</em>' attribute.
   * @see #isSetAcknowledgeMode()
   * @see #unsetAcknowledgeMode()
   * @see #getAcknowledgeMode()
   * @generated
   */
  void setAcknowledgeMode(String value);

  /**
   * Unsets the value of the '{@link fi.jab.esb.config.xml.JmsMessageFilterType#getAcknowledgeMode <em>Acknowledge Mode</em>}' attribute.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @see #isSetAcknowledgeMode()
   * @see #getAcknowledgeMode()
   * @see #setAcknowledgeMode(String)
   * @generated
   */
  void unsetAcknowledgeMode();

  /**
   * Returns whether the value of the '{@link fi.jab.esb.config.xml.JmsMessageFilterType#getAcknowledgeMode <em>Acknowledge Mode</em>}' attribute is set.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return whether the value of the '<em>Acknowledge Mode</em>' attribute is set.
   * @see #unsetAcknowledgeMode()
   * @see #getAcknowledgeMode()
   * @see #setAcknowledgeMode(String)
   * @generated
   */
  boolean isSetAcknowledgeMode();

  /**
   * Returns the value of the '<em><b>Dest Name</b></em>' attribute.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * <!-- begin-model-doc -->
   * Name of the Queue of Topic.
   * <!-- end-model-doc -->
   * @return the value of the '<em>Dest Name</em>' attribute.
   * @see #setDestName(String)
   * @see fi.jab.esb.config.xml.XmlPackage#getJmsMessageFilterType_DestName()
   * @model dataType="org.eclipse.emf.ecore.xml.type.String" required="true"
   *        extendedMetaData="kind='attribute' name='dest-name'"
   * @generated
   */
  String getDestName();

  /**
   * Sets the value of the '{@link fi.jab.esb.config.xml.JmsMessageFilterType#getDestName <em>Dest Name</em>}' attribute.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @param value the new value of the '<em>Dest Name</em>' attribute.
   * @see #getDestName()
   * @generated
   */
  void setDestName(String value);

  /**
   * Returns the value of the '<em><b>Dest Type</b></em>' attribute.
   * The default value is <code>"QUEUE"</code>.
   * The literals are from the enumeration {@link fi.jab.esb.config.xml.DestTypeType}.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * <!-- begin-model-doc -->
   * 
   * 						A Queue delivers a message once, a topic broadcasts a message to all registered listeners.
   * 					
   * <!-- end-model-doc -->
   * @return the value of the '<em>Dest Type</em>' attribute.
   * @see fi.jab.esb.config.xml.DestTypeType
   * @see #isSetDestType()
   * @see #unsetDestType()
   * @see #setDestType(DestTypeType)
   * @see fi.jab.esb.config.xml.XmlPackage#getJmsMessageFilterType_DestType()
   * @model default="QUEUE" unsettable="true" required="true"
   *        extendedMetaData="kind='attribute' name='dest-type'"
   * @generated
   */
  DestTypeType getDestType();

  /**
   * Sets the value of the '{@link fi.jab.esb.config.xml.JmsMessageFilterType#getDestType <em>Dest Type</em>}' attribute.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @param value the new value of the '<em>Dest Type</em>' attribute.
   * @see fi.jab.esb.config.xml.DestTypeType
   * @see #isSetDestType()
   * @see #unsetDestType()
   * @see #getDestType()
   * @generated
   */
  void setDestType(DestTypeType value);

  /**
   * Unsets the value of the '{@link fi.jab.esb.config.xml.JmsMessageFilterType#getDestType <em>Dest Type</em>}' attribute.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @see #isSetDestType()
   * @see #getDestType()
   * @see #setDestType(DestTypeType)
   * @generated
   */
  void unsetDestType();

  /**
   * Returns whether the value of the '{@link fi.jab.esb.config.xml.JmsMessageFilterType#getDestType <em>Dest Type</em>}' attribute is set.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return whether the value of the '<em>Dest Type</em>' attribute is set.
   * @see #unsetDestType()
   * @see #getDestType()
   * @see #setDestType(DestTypeType)
   * @generated
   */
  boolean isSetDestType();

  /**
   * Returns the value of the '<em><b>Persistent</b></em>' attribute.
   * The default value is <code>"true"</code>.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * <!-- begin-model-doc -->
   * 
   * 						If false, JMS messages will be sent non-persistent. Default is to send messages with DeliveryMode.PERSISTENT.
   * 					
   * <!-- end-model-doc -->
   * @return the value of the '<em>Persistent</em>' attribute.
   * @see #isSetPersistent()
   * @see #unsetPersistent()
   * @see #setPersistent(boolean)
   * @see fi.jab.esb.config.xml.XmlPackage#getJmsMessageFilterType_Persistent()
   * @model default="true" unsettable="true" dataType="org.eclipse.emf.ecore.xml.type.Boolean"
   *        extendedMetaData="kind='attribute' name='persistent'"
   * @generated
   */
  boolean isPersistent();

  /**
   * Sets the value of the '{@link fi.jab.esb.config.xml.JmsMessageFilterType#isPersistent <em>Persistent</em>}' attribute.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @param value the new value of the '<em>Persistent</em>' attribute.
   * @see #isSetPersistent()
   * @see #unsetPersistent()
   * @see #isPersistent()
   * @generated
   */
  void setPersistent(boolean value);

  /**
   * Unsets the value of the '{@link fi.jab.esb.config.xml.JmsMessageFilterType#isPersistent <em>Persistent</em>}' attribute.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @see #isSetPersistent()
   * @see #isPersistent()
   * @see #setPersistent(boolean)
   * @generated
   */
  void unsetPersistent();

  /**
   * Returns whether the value of the '{@link fi.jab.esb.config.xml.JmsMessageFilterType#isPersistent <em>Persistent</em>}' attribute is set.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return whether the value of the '<em>Persistent</em>' attribute is set.
   * @see #unsetPersistent()
   * @see #isPersistent()
   * @see #setPersistent(boolean)
   * @generated
   */
  boolean isSetPersistent();

  /**
   * Returns the value of the '<em><b>Selector</b></em>' attribute.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * <!-- begin-model-doc -->
   * 
   * 						A message-selector allows multiple listeners to register with the same queue/topic, but they will filter on this
   * 						message-selector.
   * 					
   * <!-- end-model-doc -->
   * @return the value of the '<em>Selector</em>' attribute.
   * @see #setSelector(String)
   * @see fi.jab.esb.config.xml.XmlPackage#getJmsMessageFilterType_Selector()
   * @model dataType="org.eclipse.emf.ecore.xml.type.String"
   *        extendedMetaData="kind='attribute' name='selector'"
   * @generated
   */
  String getSelector();

  /**
   * Sets the value of the '{@link fi.jab.esb.config.xml.JmsMessageFilterType#getSelector <em>Selector</em>}' attribute.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @param value the new value of the '<em>Selector</em>' attribute.
   * @see #getSelector()
   * @generated
   */
  void setSelector(String value);

} // JmsMessageFilterType
